// 正常的 JS 代码
/* const add = (num1, num2) => num1 + num2
console.log(add(1, 3)) */

// !#1 分别给【参数】和【返回值】指定类型
/* const add = (num1: number, num2: number): number => num1 + num2
console.log(add(1, 3)) */

// !#2 直接给变量（函数）进行整体定义
/* const add: (num1: number, num2: number) => number = (num1, num2) => num1 + num2
console.log(add(1, 3)) */

// !#3 通过类型别名来进行简化代码
/* type Fn = (num1: number, num2: number) => number
const add: Fn = (num1, num2) => num1 + num2
console.log(add(1, 3)) */

// !#4 给普通函数定义类型，只能通过分别定义参数和返回值的形式
/* function add(num1: number, num2: number): number {
  return num1 + num2
}
add(1, 3) */

// !#5 一个细节，了解一下
/* type Fn = (num1: number, num2: number) => number
const add: Fn = () => {
  return 3
}
// 调用的时候就会发现错误啦
add() // Expected 2 arguments, but got 0. */

export {}
